/*
 * CambiarRumboAvisoDestino.h
 *
 *  Created on: 14/01/2010
 *      Author: San Martín, Matías I.
 */

#ifndef CAMBIARRUMBOAVISODESTINO_H_
#define CAMBIARRUMBOAVISODESTINO_H_

#include "../../../Middleware/Common/IdFlota.h"
#include "../../../Framework/IO/SerializableToCharArray.h"

#include "DatosMensaje.h"


namespace aplicacion {

class DatosCambiarRumboAvisoDestino : public DatosMensaje {
//------------------------------ CONSTANTES ------------------------------
public:

//------------------------------ ATRIBUTOS ------------------------------
public:
	IdFlota 							_idFlota;

	/* contiene una clase capaz de persistirse y recuperarse de una archivo
	 * que guarda el estado de la flota */
	framework::io::SerializableToCharArray*	_estadoFlota;

//------------------------------ METODOS ------------------------------
public:
	DatosCambiarRumboAvisoDestino(framework::io::SerializableToCharArray* estadoFlota);
	virtual ~DatosCambiarRumboAvisoDestino();

	virtual std::string toString() const;

	virtual t_tipoMensaje getTipo()
	{
		return AVISO_CAMBIO_RUMBO_FLOTA;
	}

	//-------------------- de interfaz framework::io::SerializableToFile
	/**
	 * @see framework::io::SerializableToFile#save(int)
	 */
	virtual size_t save (int fd) const;

	/**
	 * @see framework::io::SerializableToFile#load(int)
	 */
	virtual size_t load (int fd);

	/**
	 * @see middleware::io::SerializableToArray#saveToArray(int)
	 */
	virtual size_t saveToArray (uint8_t* arr) const;

	/**
	 * @see middleware::io::SerializableToArray#loadFromArray(int)
	 */
	virtual size_t loadFromArray (const uint8_t* arr);
};

} //namespace aplicacion

#endif /* DatosCambiarRumboAvisoDestino_H_ */
